#!/bin/bash
###############################################################################
# @用例ID: 20230525-154056-556766012
# @用例名称: pciutils-test
# @用例级别: 3
# @用例标签:
# @用例类型: 功能
###############################################################################
[ -z "$TST_TS_TOPDIR" ] && {
    TST_TS_TOPDIR="$(realpath "$(dirname "$0")/..")"
    export TST_TS_TOPDIR
}
source "${TST_TS_TOPDIR}/tst_common/lib/common.sh" || exit 1
###############################################################################

g_tmpdir="$(mktemp -d)"
  
tc_setup() {
    msg "this is tc_setup"
    # @预置条件：pciutils软件包命令可用
    assert_true command -v lspci
    assert_true command -v setpci

    return 0
}

do_test() {
    msg "this is do_test"
    
    # @测试步骤:1: 检查lspci是否可以查看PCI设备信息
    # @预期结果:1: 可以查看PCI设备信息
    assert_true spci
   
    # @测试步骤:2: 验证setpci命令
    # @预期结果:2: setpci命令可用正确使用
    original_value=$(setpci -s 00:01.0 COMMAND)
    setpci -s 00:01.0 COMMAND=07
    config_value=$(setpci -s 00:01.0 COMMAND)
    expected_value="0x07"
    assert_true [ "$config_value" -eq "$expected_value" ]
    setpci -s 00:01.0 COMMAND="$original_value"
    config_value=$(setpci -s 00:01.0 COMMAND)
    assert_true [ "$config_value" -eq "$original_value" ]

   
    return 0
}



tc_teardown() {
    msg "this is tc_teardown"

    rm -rfv "$g_tmpdir" || return 1
    return 0
}


###############################################################################
tst_main "$@"
###############################################################################
